﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:Ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
                    xmlns:ViewModel="clr-namespace:Hisaab.Windows.Client.ViewModel"
                    xmlns:Model="clr-namespace:Hisaab.Windows.Client.Model"
                    xmlns:RibbonWrapper="clr-namespace:Hisaab.Windows.RibbonWrapper;assembly=Hisaab.Windows.RibbonWrapper">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/Dictionaries/icons.xaml" />
    </ResourceDictionary.MergedDictionaries>

    <Style x:Key="NewButton" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource" Value="{StaticResource NewIcon}"/>
        <Setter Property="Header" Value="New"/>
    </Style>
    <Style x:Key="SaveButton" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource" Value="{StaticResource SaveLargeIcon}"/>
        <Setter Property="Header" Value="Save"/>
    </Style>

    <Style x:Key="SaveSmallButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="SmallImageSource" Value="{StaticResource SaveIcon}"/>
        <Setter Property="Label" Value="Save"/>
    </Style>

    <Style x:Key="ImportButton" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource" Value="{StaticResource ImportIcon}"/>
        <Setter Property="Header" Value="Import"/>
    </Style>
    <Style x:Key="ImportNatwestButton" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource" Value="{StaticResource NatwestIcon}"/>
        <Setter Property="Header" Value="Natwest file"/>
    </Style>
    <Style x:Key="ImportHsbcButton" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource" Value="{StaticResource HSBCIcon}"/>
        <Setter Property="Header" Value="HSBC file"/>
    </Style>
    <Style x:Key="ExportButton" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource" Value="{StaticResource ExportIcon}"/>
        <Setter Property="Header" Value="Export"/>
    </Style>
    <Style x:Key="ExportFileButton" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource" Value="{StaticResource ExportIcon}"/>
        <Setter Property="Header" Value="Import"/>
    </Style>
    <Style x:Key="BackupButton" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource" Value="{StaticResource SaveLargeIcon}"/>
        <Setter Property="Header" Value="Backup"/>
    </Style>
    <Style x:Key="RestoreButton" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource" Value="{StaticResource SaveLargeIcon}"/>
        <Setter Property="Header" Value="Restore"/>
    </Style>

    <Style x:Key="OptionButton" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource" Value="{StaticResource OptionsIcon}"/>
        <Setter Property="Header" Value="Option"/>
    </Style>
    <Style x:Key="AboutButton" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource" Value="{StaticResource AboutIcon}"/>
        <Setter Property="Header" Value="About"/>
    </Style>
    <Style x:Key="ExitButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="SmallImageSource" Value="{StaticResource ExitIcon}"/>
        <Setter Property="Label" Value="Exit Hisaab"/>
    </Style>
    <Style x:Key="CalculatorButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource CalculatorIcon}"/>
        <Setter Property="Label" Value="Calculator"/>
    </Style>
    <Style x:Key="OpenDashboardButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource HomeIcon}"/>
        <Setter Property="Label" Value="Home"/>
    </Style>

    <Style x:Key="DashboardGroup" TargetType="Ribbon:RibbonGroup">
        <Setter Property="Header" Value="Dashboard"/>
    </Style>
    <Style x:Key="NewGroup" TargetType="Ribbon:RibbonGroup">
        <Setter Property="Header" Value="New"/>
    </Style>
    <Style x:Key="ViewsGroup" TargetType="Ribbon:RibbonGroup">
        <Setter Property="Header" Value="View"/>
    </Style>
    <Style x:Key="ToolsGroup" TargetType="Ribbon:RibbonGroup">
        <Setter Property="Header" Value="Tools"/>
    </Style>

    <!-- Clipboard Styles -->
    <Style x:Key="PasteButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="SmallImageSource" Value="{StaticResource PasteIcon}"/>
        <Setter Property="Label" Value="Paste"/>
    </Style>
    <Style x:Key="CutButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="SmallImageSource" Value="{StaticResource CutIcon}"/>
        <Setter Property="Label" Value="Cut"/>
    </Style>
    <Style x:Key="CopyButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="SmallImageSource" Value="{StaticResource CopyIcon}"/>
        <Setter Property="Label" Value="Copy"/>
    </Style>

    <!-- Account Buttons -->
    <Style x:Key="AccountsButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource AccountIcon}"/>
        <Setter Property="Label" Value="Accounts"/>
    </Style>
    <Style x:Key="NewAccount" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource" Value="{StaticResource AddAccountIcon}" />
        <Setter Property="Header" Value="New Account"/>
    </Style>
    <Style x:Key="AddAccountButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource AddAccountIcon}"/>
        <Setter Property="Label" Value="Account"/>
    </Style>
    <Style x:Key="EditAccountButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource EditAccountIcon}"/>
        <Setter Property="Label" Value="Edit Account"/>
    </Style>
    <Style x:Key="RefreshAccountButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource RefreshAccountIcon}"/>
        <Setter Property="Label" Value="Refresh Accounts"/>
    </Style>
    <Style x:Key="DeleteAccountButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource DeleteAccountIcon}"/>
        <Setter Property="Label" Value="Delete Account"/>
    </Style>

    <!-- Tag Buttons -->
    <Style x:Key="TagsButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource TagIcon}"/>
        <Setter Property="Label" Value="Tags"/>
    </Style>
    <Style x:Key="NewTag" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource"  Value="{StaticResource AddTagIcon}"/>
        <Setter Property="Header" Value="New Tag"/>
    </Style>
    <Style x:Key="NewTagButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource AddTagIcon}"/>
        <Setter Property="Label" Value="Add Tag"/>
    </Style>
    <Style x:Key="RefreshTagButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource RefreshTagIcon}"/>
        <Setter Property="Label" Value="Refresh Tag"/>
    </Style>
    <Style x:Key="EditTagButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource EditTagIcon}"/>
        <Setter Property="Label" Value="Edit Tag"/>
    </Style>
    <Style x:Key="DeleteTagButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource DeleteTagIcon}"/>
        <Setter Property="Label" Value="Delete Tag"/>
    </Style>

    <!-- Transaction Styles -->
    <Style x:Key="TransactionsButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource TransactionIcon}"/>
        <Setter Property="Label" Value="Transactions"/>
    </Style>
    <Style x:Key="NewExpanse" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource" Value="{StaticResource AddTransactionIcon}"/>
        <Setter Property="Header" Value="New Transaction"/>
    </Style>
    <Style x:Key="AddTransaction" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource AddTransactionIcon}"/>
        <Setter Property="Label" Value="Transaction"/>
    </Style>
    <Style x:Key="RelateTransaction" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource RelateTransactionIcon}"/>
        <Setter Property="Label" Value="Relate Transaction"/>
    </Style>
    <Style x:Key="RefreshTransactionButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource RefreshTransactionIcon}"/>
        <Setter Property="Label" Value="Refresh Transation"/>
    </Style>
    <Style x:Key="EditTransactionButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource EditTransactionIcon}"/>
        <Setter Property="Label" Value="Edit Transation"/>
    </Style>
    <Style x:Key="DeleteTransactionButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource DeleteTransactionIcon}"/>
        <Setter Property="Label" Value="Delete Transation"/>
    </Style>

    <Style x:Key="AddTagButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="/Images/Large/Tag_add.png"/>
        <Setter Property="Label" Value="Tag"/>
    </Style>

    <Style x:Key="TransactionMonthFilter" TargetType="Ribbon:RibbonMenuItem">
        <Setter Property="IsCheckable" Value="True" />
        <Setter Property="RibbonWrapper:MenuItemExtensions.GroupName" Value="TransactionFilterByDateGroup" />
        <Setter Property="Command" Value="{x:Static ViewModel:TransactionsViewModel.ByMonthCommand}" />
    </Style>
    <Style x:Key="TransactionCurrentMonthFilter" BasedOn="TransactionMonthFilter">
        <Setter Property="Ribbon:RibbonMenuItem.Header" Value="Current Month" />
        <Setter Property="Ribbon:RibbonMenuItem.CommandParameter" Value="0" />
        <Setter Property="Ribbon:RibbonMenuItem.IsChecked" Value="True" />
    </Style>
    <Style x:Key="TransactionOneMonthFilter" BasedOn="TransactionMonthFilter">
        <Setter Property="Ribbon:RibbonMenuItem.Header" Value="Last 1 Month" />
        <Setter Property="Ribbon:RibbonMenuItem.CommandParameter" Value="1" />
    </Style>
    <Style x:Key="TransactionTwoMonthFilter" BasedOn="TransactionMonthFilter">
        <Setter Property="Ribbon:RibbonMenuItem.Header" Value="Last 2 Months" />
        <Setter Property="Ribbon:RibbonMenuItem.CommandParameter" Value="2" />
    </Style>
    <Style x:Key="TransactionThreeMonthFilter" BasedOn="TransactionMonthFilter">
        <Setter Property="Ribbon:RibbonMenuItem.Header" Value="Last 3 Months" />
        <Setter Property="Ribbon:RibbonMenuItem.CommandParameter" Value="3" />
    </Style>
    <Style x:Key="TransactionFourMonthFilter" BasedOn="TransactionMonthFilter">
        <Setter Property="Ribbon:RibbonMenuItem.Header" Value="Last 4 Months" />
        <Setter Property="Ribbon:RibbonMenuItem.CommandParameter" Value="4" />
    </Style>
    <Style x:Key="TransactionFiveMonthFilter" BasedOn="TransactionMonthFilter">
        <Setter Property="Ribbon:RibbonMenuItem.Header" Value="Last 5 Months" />
        <Setter Property="Ribbon:RibbonMenuItem.CommandParameter" Value="5" />
    </Style>
    <Style x:Key="TransactionSixMonthFilter" BasedOn="TransactionMonthFilter">
        <Setter Property="Ribbon:RibbonMenuItem.Header" Value="Last 6 Months" />
        <Setter Property="Ribbon:RibbonMenuItem.CommandParameter" Value="6" />
    </Style>
    <Style x:Key="TransactionOneYearFilter" BasedOn="TransactionMonthFilter">
        <Setter Property="Ribbon:RibbonMenuItem.Header" Value="Last 1 Year" />
        <Setter Property="Ribbon:RibbonMenuItem.CommandParameter" Value="12" />
    </Style>
    <Style x:Key="TransactionAllFilter" BasedOn="TransactionMonthFilter">
        <Setter Property="Ribbon:RibbonMenuItem.Header" Value="All" />
        <Setter Property="Ribbon:RibbonMenuItem.CommandParameter" Value="-1" />
    </Style>

    <Style x:Key="TransactionSortFilter" TargetType="Ribbon:RibbonMenuItem">
        <Setter Property="IsCheckable" Value="True" />
        <Setter Property="RibbonWrapper:MenuItemExtensions.GroupName" Value="TransactionSortingGroup" />
        <Setter Property="Command" Value="{x:Static ViewModel:TransactionsViewModel.SortCommand}" />
    </Style>
    <Style x:Key="TransactionSortByDateFilter" BasedOn="TransactionSortFilter">
        <Setter Property="Ribbon:RibbonMenuItem.Header" Value="Date" />
        <Setter Property="Ribbon:RibbonMenuItem.IsChecked" Value="True" />
        <Setter Property="Ribbon:RibbonMenuItem.CommandParameter" Value="{x:Static Model:SortByType.Date}" />
    </Style>
    <Style x:Key="TransactionSortByAmountFilter" BasedOn="TransactionSortFilter">
        <Setter Property="Ribbon:RibbonMenuItem.Header" Value="Amount" />
        <Setter Property="Ribbon:RibbonMenuItem.CommandParameter" Value="{x:Static Model:SortByType.Amount}" />
    </Style>
    <Style x:Key="TransactionSortByTransactionTypeFilter" BasedOn="TransactionSortFilter">
        <Setter Property="Ribbon:RibbonMenuItem.Header" Value="Transaction Type" />
        <Setter Property="Ribbon:RibbonMenuItem.CommandParameter" Value="{x:Static Model:SortByType.Type}" />
    </Style>

    <Style x:Key="TransactionSortByAscendingFilter" TargetType="Ribbon:RibbonMenuItem">
        <Setter Property="Header" Value="Ascending" />
        <Setter Property="IsCheckable" Value="True" />
        <Setter Property="IsChecked" Value="True" />
        <Setter Property="Command" Value="{x:Static ViewModel:TransactionsViewModel.OrderByCommand}" />
        <Setter Property="CommandParameter" Value="{x:Static Model:OrderByType.Ascending}" />
        <Setter Property="RibbonWrapper:MenuItemExtensions.GroupName" Value="TransactionOrderGroup" />
    </Style>
    <Style x:Key="TransactionSortByDescendingFilter" TargetType="Ribbon:RibbonMenuItem">
        <Setter Property="Header" Value="Descending" />
        <Setter Property="IsCheckable" Value="True" />
        <Setter Property="Command" Value="{x:Static ViewModel:TransactionsViewModel.OrderByCommand}" />
        <Setter Property="CommandParameter" Value="{x:Static Model:OrderByType.Descending}" />
        <Setter Property="RibbonWrapper:MenuItemExtensions.GroupName" Value="TransactionOrderGroup" />
    </Style>

    <!-- Vehicle Buttons -->
    <Style x:Key="VehiclesButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource VehicleIcon}"/>
        <Setter Property="Label" Value="Vehicles"/>
    </Style>
    <Style x:Key="NewVehicle" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource" Value="{StaticResource AddVehicleIcon}" />
        <Setter Property="Header" Value="New Vehicle"/>
    </Style>
    <Style x:Key="AddVehicleButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource AddVehicleIcon}"/>
        <Setter Property="Label" Value="Vehicle"/>
    </Style>
    <Style x:Key="RefreshVehicleButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource RefreshVehicleIcon}"/>
        <Setter Property="Label" Value="Refresh Vehicle"/>
    </Style>
    <Style x:Key="EditVehicleButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource EditVehicleIcon}"/>
        <Setter Property="Label" Value="Edit Vehicle"/>
    </Style>
    <Style x:Key="DeleteVehicleButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource DeleteVehicleIcon}"/>
        <Setter Property="Label" Value="Delete Vehicle"/>
    </Style>

    <!-- Vehicle Transaction Styles -->
    <Style x:Key="VehicleTransactionsButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource VehicleTransactionIcon}"/>
        <Setter Property="Label" Value="Vehicle Transaction"/>
    </Style>
    <Style x:Key="NewVehicleTransaction" TargetType="Ribbon:RibbonApplicationMenuItem">
        <Setter Property="ImageSource" Value="{StaticResource AddVehicleTransactionIcon}" />
        <Setter Property="Header" Value="New Vehicle Transaction"/>
    </Style>
    <Style x:Key="AddVehicleTransaction" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource AddVehicleTransactionIcon}"/>
        <Setter Property="Label" Value="Vehicle Transation"/>
    </Style>
    <Style x:Key="RefreshVehicleTransactionButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource RefreshVehicleTransactionIcon}"/>
        <Setter Property="Label" Value="Refresh Vehicle Transation"/>
    </Style>
    <Style x:Key="EditVehicleTransactionButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource EditVehicleTransactionIcon}"/>
        <Setter Property="Label" Value="Edit Vehicle Transation"/>
    </Style>
    <Style x:Key="DeleteVehicleTransactionButton" TargetType="Ribbon:RibbonButton">
        <Setter Property="LargeImageSource" Value="{StaticResource DeleteVehicleTransactionIcon}"/>
        <Setter Property="Label" Value="Delete Vehicle Transation"/>
    </Style>
</ResourceDictionary>